﻿/**
 *
 * @file OperAbstractSubsystem.h
 * @brief 用于表格的SEA子系统操作器抽象类声明
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-23
 *
 */
#ifndef _OPER_Subsystem__ABSTRACT_H___
#define _OPER_Subsystem__ABSTRACT_H___

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"
#include "OperatorsInterfaceAPI.h"

namespace Acoustics
{
    class FITKAcousticsSEASubSysManager;
    class FITKAcousticsFESubSysManager;
    class FITKAcousticsSpectraManager;
}

namespace EventOper
{
    /**
     * @brief  SEA/FE子系统操作器抽象类
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-10
     */
    class OperatorsInterfaceAPI OperAbstractSubsystem : public Core::FITKActionOperator
    {
    public:
        OperAbstractSubsystem();
        virtual ~OperAbstractSubsystem() = 0;
        /**
         * @brief 编辑子系统
         * @param[i]  seaID          子系统id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void editSubsystem(const int seaID);
        /**
         * @brief 删除子系统
         * @param[i]  seaID          子系统id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removeSubsystem(const int seaID);
        /**
         * @brief 批量设置属性
         * @param[i]  name           属性名
         * @param[i]  currentText    当前值
         * @param[i]  attrIndex      属性索引
         * @param[i]  seaIDs         子系统id
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        virtual void setAttribute(const QString &name, const QString& currentText, const int attrIndex, const QList<int> & seaIDs);

    protected:
        /**
         * @brief  SEA子系统管理器
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        Acoustics::FITKAcousticsSEASubSysManager* _seaMgr{};
        /**
        * @brief  FE子系统管理器
        * @author wangning (2185896382@qq.com)
        * @date 2024-01-24
        */
        Acoustics::FITKAcousticsFESubSysManager* _feMgr{};
        /**
         * @brief  频谱管理器
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        Acoustics::FITKAcousticsSpectraManager* _specMgr{};
    };
}


#endif